package br.ifrn.edu.mb;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import banco.entidades.Transferencia;
import banco.entidades.Usuario;
import banco.facade.FachadaBanco;
import banco.facade.FachadaTransferencia;

@ManagedBean(name="transferenciaMB")
@SessionScoped
public class TransferenciaMB {

	@EJB
	private FachadaBanco fachadaBanco;
	@EJB
	private FachadaTransferencia fachadaTransferencia;
	
	private Transferencia transferencia;
	private int contaDestinoId;
	private double valor;
	
	public Transferencia getTransferencia() {
		return transferencia;
	}

	public void setTransferencia(Transferencia transferencia) {
		this.transferencia = transferencia;
	}

	public int getContaDestinoId() {
		return contaDestinoId;
	}

	public void setContaDestinoId(int contaDestinoId) {
		this.contaDestinoId = contaDestinoId;
	}
	
	public String getContaDestinoTitular() {
		return fachadaBanco.titular(getContaDestinoId());
	}
	
	public double getValor() {
		return valor;
	}

	public void setValor(double valor) {
		this.valor = valor;
	}
	
	public String iniciarTransferencia() {
		return "iniciarTransferencia.xhtml";
	}
	
	public String continuar() {
		return "confirmarTransferencia.xhtml";
	}

	public String cancelar() {
		return "index.xhtml";
	}
	
	public String transferir() {
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
		Usuario usuario = (Usuario) session.getAttribute("usuario");
		fachadaTransferencia.confirmar(usuario.getConta().getId(), getContaDestinoId(), getValor());
		return "inicio.xhtml";
	}
}
